From: Colin Walters Date: Wed, 22 Jul 2009 16:46:05 +0000 (-0400) Subject: Fix time updating for recent files X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~11195 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=75c875f0733254b2ec5a9292c4a7ca95ead7d342;p=gnome-shell.git Fix time updating for recent files --- diff --git a/js/ui/docDisplay.js b/js/ui/docDisplay.js index d457d2d29..e7a82808c 100644 --- a/js/ui/docDisplay.js +++ b/js/ui/docDisplay.js @@ -6,6 +6,7 @@ const Gtk = imports.gi.Gtk; const Lang = imports.lang; const Shell = imports.gi.Shell; const Signals = imports.signals; +const Mainloop = imports.mainloop; const DocInfo = imports.misc.docInfo; const GenericDisplay = imports.ui.genericDisplay; @@ -102,7 +103,7 @@ DocDisplay.prototype = { GenericDisplay.GenericDisplay.prototype._init.call(this, width); let me = this; - this._updateTimeoutTarget = 0; + this._updateTimeoutTarget = -1; this._updateTimeoutId = 0; this._docManager = DocInfo.getDocManager(GenericDisplay.ITEM_DISPLAY_ICON_SIZE); @@ -198,10 +199,11 @@ DocDisplay.prototype = { _createDisplayItem: function(itemInfo, width) { let currentSecs = new Date().getTime() / 1000; let doc = new DocDisplayItem(itemInfo, currentSecs, width); - if (doc.getUpdateTimeout() < this._updateTimeoutTarget) { + let timeout = Math.round(doc.getUpdateTimeout() / 8)+1; + if (this._updateTimeoutTarget < 0 || timeout < this._updateTimeoutTarget) { if (this._updateTimeoutId > 0) Mainloop.source_remove(this._updateTimeoutId); - this._updateTimeoutId = Mainloop.timeout_add_seconds(doc.getUpdateTimeout(), Lang.bind(this, this._docTimeout)); + this._updateTimeoutId = Mainloop.timeout_add_seconds(timeout, Lang.bind(this, this._docTimeout)); this._updateTimeoutTarget = doc.getUpdateTimeout(); } return doc; @@ -210,9 +212,9 @@ DocDisplay.prototype = { //// Private Methods //// _docTimeout: function () { let currentSecs = new Date().getTime() / 1000; - for (let docId in this._allItems) { - let doc = this._allItems[docId]; - doc.redisplay(currentSecs); + for (let docId in this._displayedItems) { + let disp = this._displayedItems[docId]; + disp.redisplay(currentSecs); } return true; }